অ্যাজাক্স (Ajax)

GET Request এর মাধ্যমে ডেটা রিকোয়েস্ট করা

Web Development - অ্যাজাক্স (Ajax) - Ajax এর মাধ্যমে GET এবং POST Request (GET এবং POST Request Handling with Ajax) | NCTB BOOK

Ajax এর মাধ্যমে GET রিকোয়েস্ট ব্যবহার করে ডেটা রিকোয়েস্ট করার একটি সাধারণ পদ্ধতি হলো XMLHttpRequest অবজেক্ট ব্যবহার করা। GET রিকোয়েস্ট সাধারণত সার্ভার থেকে ডেটা ফেচ বা আনার জন্য ব্যবহৃত হয় এবং এটি সহজ ও কার্যকর। নিচে একটি পূর্ণাঙ্গ উদাহরণ এবং এর ধাপে ধাপে ব্যাখ্যা দেওয়া হলো:

উদাহরণ: GET Request এর মাধ্যমে ডেটা রিকোয়েস্ট করা

HTML (index.html):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GET Request Example</title>
</head>
<body>
    <h1>Fetch Data Using GET Request</h1>
    <button onclick="fetchData()">Fetch Data</button>
    <div id="data-container">
        <!-- GET রিকোয়েস্টের মাধ্যমে প্রাপ্ত ডেটা এখানে দেখানো হবে -->
    </div>

    <script src="app.js"></script>
</body>
</html>

বিস্তারিত ব্যাখ্যা:

  • একটি HTML পেজ তৈরি করা হয়েছে যেখানে একটি শিরোনাম (<h1>), একটি বোতাম (<button>), এবং একটি <div> এলিমেন্ট রয়েছে।
  • "Fetch Data" বোতামে ক্লিক করলে fetchData() ফাংশন কল হবে, যা GET রিকোয়েস্ট করবে।
  • data-container নামে একটি <div> এলিমেন্ট রয়েছে, যেখানে Ajax GET রিকোয়েস্টের মাধ্যমে প্রাপ্ত ডেটা ডায়নামিকভাবে দেখানো হবে।

JavaScript (app.js):

function fetchData() {
    // XMLHttpRequest অবজেক্ট তৈরি করা
    var xhr = new XMLHttpRequest();
    
    // GET রিকোয়েস্ট ওপেন করা
    xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
    
    // রেসপন্স হ্যান্ডলিং সেট করা
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4) { // রিকোয়েস্ট সম্পূর্ণ হয়েছে কিনা তা চেক করা
            if (xhr.status === 200) { // রিকোয়েস্ট সফল হয়েছে কিনা তা চেক করা
                var data = JSON.parse(xhr.responseText); // JSON ডেটা প্রসেস করা
                document.getElementById("data-container").innerHTML = `
                    <h2>${data.title}</h2>
                    <p>${data.body}</p>
                `;
            } else {
                // যদি এরর হয়, তাহলে এরর মেসেজ দেখানো
                document.getElementById("data-container").innerHTML = "Error fetching data!";
            }
        }
    };
    
    // রিকোয়েস্ট পাঠানো
    xhr.send();
}

বিস্তারিত ব্যাখ্যা:

১. XMLHttpRequest অবজেক্ট তৈরি করা:

  • fetchData() ফাংশনে একটি XMLHttpRequest অবজেক্ট তৈরি করা হয়েছে, যা GET রিকোয়েস্ট পরিচালনা করবে।

২. রিকোয়েস্ট ওপেন করা:

  • xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true); মেথড ব্যবহার করে একটি GET রিকোয়েস্ট সেটআপ করা হয়েছে।
  • "GET" মেথড ব্যবহার করা হয়েছে, যা সার্ভার থেকে ডেটা আনার জন্য ব্যবহৃত হয়।
  • "https://jsonplaceholder.typicode.com/posts/1" URL থেকে ডেটা ফেচ করা হবে। এটি একটি ডেমো API যা JSON ডেটা প্রদান করে।
  • true মানে রিকোয়েস্টটি অ্যাসিনক্রোনাসভাবে চালানো হবে।

৩. রেসপন্স হ্যান্ডলিং:

  • xhr.onreadystatechange ইভেন্ট হ্যান্ডলার ব্যবহার করে চেক করা হয়েছে যে রিকোয়েস্ট সম্পূর্ণ হয়েছে কিনা (xhr.readyState === 4) এবং সফল হয়েছে কিনা (xhr.status === 200)।
  • যদি রিকোয়েস্ট সফল হয়, তাহলে JSON ডেটা পার্স করে HTML ডকুমেন্টে (data-container ডিভে) আপডেট করা হয়েছে।
  • যদি রিকোয়েস্ট ব্যর্থ হয়, তাহলে একটি এরর মেসেজ দেখানো হয়েছে।

৪. রিকোয়েস্ট পাঠানো:

  • xhr.send(); মেথড ব্যবহার করে রিকোয়েস্টটি সার্ভারে পাঠানো হয়েছে।

সার্ভার রেসপন্স:

এই উদাহরণে, আমরা একটি JSONPlaceholder API ব্যবহার করেছি যা নিচের মতো JSON ডেটা প্রদান করে:

{
    "userId": 1,
    "id": 1,
    "title": "Sample Title",
    "body": "This is a sample body text."
}

প্রোগ্রামটি কীভাবে কাজ করে:

  1. ইউজার যখন "Fetch Data" বোতামটি ক্লিক করে, তখন fetchData() ফাংশন কল হয়।
  2. ফাংশনটি একটি GET রিকোয়েস্ট পাঠায় এবং সার্ভার থেকে JSON ডেটা রিসিভ করে।
  3. রেসপন্স পাওয়ার পর, ডেটা HTML পেজে ইনজেক্ট করা হয়, ফলে ইউজার পেজ রিফ্রেশ ছাড়াই সেই ডেটা দেখতে পারে।

সারসংক্ষেপ:

  • GET রিকোয়েস্ট: Ajax এর মাধ্যমে সার্ভারে GET রিকোয়েস্ট পাঠিয়ে ডেটা ফেচ করা হয়।
  • অ্যাসিনক্রোনাস অপারেশন: Ajax GET রিকোয়েস্ট অ্যাসিনক্রোনাসভাবে কাজ করে, ফলে পেজ প্রতিক্রিয়াশীল থাকে এবং রেসপন্স পাওয়ার পর HTML ডায়নামিকভাবে আপডেট হয়।
  • রেসপন্স হ্যান্ডলিং: readyState এবং status চেক করে রিকোয়েস্ট সফল হলে ডেটা প্রসেস এবং DOM আপডেট করা হয়।

এই ধাপগুলো অনুসরণ করে আপনি সহজেই Ajax GET রিকোয়েস্ট ব্যবহার করে সার্ভার থেকে ডেটা ফেচ করতে পারেন এবং আপনার ওয়েব পেজে ডায়নামিক কন্টেন্ট আপডেট করতে পারেন।

Promotion